package com.webflux.sample.webfluxmain;

import reactor.core.publisher.Flux;

public class _5_5operator_reduce {

  public static void main(String[] args) {
    // reduce和reduceWith操作符对流中包含的所有元素进行累计操作，得到一个包含计算结果的Mono序列。累计操作是通过一个BiFunction来表示的。
    Flux.range(1, 100).reduce((x, y) -> x + y).subscribe(System.out::println);
    // Supplier 在操作时可以指定一个初始值，下面给的初始值是 10000 。若没有初始值，则序列的第一个元素作为初始值。
    Flux.range(1, 100).reduceWith(() -> 10000, (x, y) -> x + y).subscribe(System.out::println);
  }
}
